<!doctype html>
<html lang="en" class="page-type-glossary">
<head prefix="og: http://ogp.me/ns#">
<meta charset="utf-8">
<title>Glossary - FreeMarker 手册</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="format-detection" content="telephone=no">
<meta property="og:site_name" content="FreeMarker 手册">
<meta property="og:title" content="Glossary">
<meta property="og:locale" content="en_US">
<meta property="og:url" content="http://freemarker.org/docs/gloss.html">
<link rel="canoical" href="http://freemarker.org/docs/gloss.html">
<link rel="icon" href="favicon.png" type="image/png">
<link rel="stylesheet" type="text/css" href="docgen-resources/docgen.min.css">
</head>
<body itemscope itemtype="https://schema.org/Code">
    <meta itemprop="url" content="http://freemarker.org/docs/">
    <meta itemprop="name" content="FreeMarker 手册">

  <!--[if lte IE 9]>
  <div style="background-color: #C00; color: #fff; padding: 12px 24px;">Please use a modern browser to view this website.</div>
  <![endif]--><div class="header-top-bg"><div class="site-width header-top"><a class="logo" href="http://freemarker.org" role="banner">            <img itemprop="image" src="logo.png" alt="FreeMarker">
</a><ul class="tabs"><li><a href="http://freemarker.org/">Home</a></li><li class="current"><a href="index.html">Manual</a></li><li><a class="external" href="http://freemarker.org/docs/api/index.html">Java API</a></li></ul><ul class="secondary-tabs"><li><a class="tab icon-heart" href="http://freemarker.org/contribute.html" title="Contribute"><span>Contribute</span></a></li><li><a class="tab icon-bug" href="https://sourceforge.net/p/freemarker/bugs/new/" title="Report a Bug"><span>Report a Bug</span></a></li><li><a class="tab icon-download" href="http://freemarker.org/freemarkerdownload.html" title="Download"><span>Download</span></a></li></ul></div></div><div class="header-bottom-bg"><div class="site-width search-row"><a href="toc.html" class="navigation-header">Manual</a><div class="navigation-header"></div></div><div class="site-width breadcrumb-row"><ul class="breadcrumb" itemscope itemtype="http://schema.org/BreadcrumbList"><li class="step-0" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="toc.html"><span itemprop="name">FreeMarker 手册</span></a></li><li class="step-1" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a class="label" itemprop="item" href="gloss.html"><span itemprop="name">Glossary</span></a></li></ul><div class="bookmarks" title="Bookmarks"><span class="sr-only">Bookmarks:</span><ul class="bookmark-list"><li><a href="alphaidx.html">Alpha. index</a></li><li>Glossary</li><li><a href="dgui_template_exp.html#exp_cheatsheet">Expressions</a></li><li><a href="ref_builtins_alphaidx.html">?builtins</a></li><li><a href="ref_directive_alphaidx.html">#directives</a></li><li><a href="ref_specvar.html">.spec_vars</a></li><li><a href="app_faq.html">FAQ</a></li></ul></div></div></div>    <div class="main-content site-width">
      <div class="content-wrapper">
  <div id="table-of-contents-wrapper" class="col-left">
      <script>var breadcrumb = ["FreeMarker 手册","Glossary"];</script>
      <script src="toc.js"></script>
      <script src="docgen-resources/main.min.js"></script>
  </div>
<div class="col-right"><div class="page-content"><div class="page-title"><div class="pagers top"><a class="paging-arrow previous" href="app_eccn.html"><span>Previous</span></a><a class="paging-arrow next" href="alphaidx.html"><span>Next</span></a></div><div class="title-wrapper">
<h1 class="content-header header-part" id="gloss" itemprop="headline">Glossary</h1>
</div></div>  <p>
<a href="#gloss.attribute">A</a>&nbsp;| <a href="#gloss.boolean">B</a>&nbsp;| <a href="#gloss.character">C</a>&nbsp;| <a href="#gloss.dataModel">D</a>&nbsp;| <a href="#gloss.element">E</a>&nbsp;| <a href="#gloss.FTL">F</a>&nbsp;| <a href="#gloss.hashVariable">H</a>&nbsp;| <a href="#gloss.lineBreak">L</a>&nbsp;| <a href="#gloss.macroDefinitionBody">M</a>&nbsp;| <a href="#gloss.outputEncoding">O</a>&nbsp;| <a href="#gloss.predefinedDirective">P</a>&nbsp;| <a href="#gloss.regularExpression">R</a>&nbsp;| <a href="#gloss.scalarVariable">S</a>&nbsp;| <a href="#gloss.tag">T</a>&nbsp;| <a href="#gloss.UCS">U</a>&nbsp;| <a href="#gloss.whiteSpace">W</a>&nbsp;| <a href="#autoid_275">X</a>  </p>

  <dl>

        <dt><a name="gloss.attribute"></a>Attribute(属性)</dt>


         <dd>
        <p>为了连接 <a href="#gloss.XML">XML</a> 或HTML
		(或通用的 <a href="#gloss.SGML">SGML</a>)，属性是关联元素的命名的值。
		比如，在 <code class="inline-code">&lt;body bgcolor=black
        text=green&gt;<em class="code-color">...</em>&lt;/body&gt;</code>中，
		属性是 <code class="inline-code">bgcolor=black</code> 和 <code class="inline-code">text=green</code>。
		在符号 <code class="inline-code">=</code> 的左边是属性的名字，而在右边的是属性的值。
		注意在XML中，值必须是被引号引起来的(比如：<code class="inline-code">&lt;body bgcolor=&quot;black&quot;
        text=&#39;green&#39;&gt;</code>)，而在HTML中它对某些值是可选的。</p>

        
      
    <p>See Also
       <a href="#gloss.startTag">Start-tag</a>
    </p>
   </dd>

    
        <dt><a name="gloss.boolean"></a>Boolean</dt>


         <dd>
        <p>This is a variable type. A boolean variable represents a logical
        true or false (yes or no). For example, if the visitor has been logged
        in or not. There are only two possible boolean values:
        <code class="inline-code">true</code> and <code class="inline-code">false</code>. Typically, you
        will use booleans with an <code class="inline-code">&lt;#if
        <em class="code-color">...</em>&gt;</code> directive when you want
        to display text based on some condition, say, you show a certain part
        of the page only for visitors who has logged in.</p>
      
   </dd>

    
        <dt><a name="gloss.character"></a>Character</dt>


         <dd>
        <p>A symbol that people use in writing. Examples of characters:
        Latin capital letter A (``A&#39;&#39;), Latin small letter A (``a&#39;&#39;), digit
        four (``4&#39;&#39;), number sign (``#&#39;&#39;), colon (``:&#39;&#39;)</p>
      
   </dd>

    
        <dt><a name="gloss.charset"></a>Charset</dt>


         <dd>
        <p>A charset is a rule (algorithm) for transforming a sequence of
        <a href="#gloss.character">characters</a> (text) to a sequence
        of bits (or in practice, to a sequence of bytes). Whenever a character
        sequence is stored on a digital media, or sent through a digital
        channel (network), a charset must be applied. Examples of charsets are
        ISO-8859-1, ISO-8859-6, Shift_JIS , UTF-8.</p>

        <p>The capabilities of different charsers are different, that is,
        not all charsets can be used for all languages. For example ISO-8859-1
        can&#39;t represent Arabic letters, but ISO-8859-6 can, however it can&#39;t
        represent the accented letters that that ISO-8859-1 can. Most charsets
        are highly restrictive regarding the allowed characters. UTF-8 allows
        virtually all possible characters, but most text editors can&#39;t handle
        it yet (2004).</p>

        <p>When different software components exchange text (as the HTTP
        server and the browser, or the text editor you use for saving
        templates and FreeMarker who loads them), it&#39;s very important that
        they agree in the charset used for the binary encoding of the text. If
        they don&#39;t, then the binary data will be misinterpreted by the
        receiver (loader) component, which usually results in the distortion
        of the non-English letters.</p>
      
   </dd>

    
        <dt><a name="gloss.collectionVariable"></a>Collection</dt>


         <dd>
        <p>A variable that (in conjunction with the <code class="inline-code">list</code>
        directive) can spit out a series of variables.</p>
      
   </dd>

    
        <dt><a name="gloss.dataModel"></a>Data-model</dt>


         <dd>
        <p>Something that holds the information the template has to show
        (or use in some other ways) when the template processor assembles the
        output (e.g. a Web page). In FreeMarker this is best visualized as a
        tree.</p>
      
   </dd>

    
        <dt><a name="gloss.directive"></a>Directive</dt>


         <dd>
        <p>Instructions to FreeMarker used in <a href="#gloss.FTL">FTL</a> <a href="#gloss.template">templates</a>. They are invoked by <a href="#gloss.FTLTag">FTL tags</a>.</p>

        

        
      
    <p>See Also
       <a href="#gloss.predefinedDirective">Predefined directive</a>,
       <a href="#gloss.userDefinedDirective">User-defined directive</a>
    </p>
   </dd>

    
        <dt><a name="gloss.element"></a>Element</dt>


         <dd>
        <p>Elements are the most fundamental building pieces of <a href="#gloss.SGML">SGML</a> documents; an SGML document is
        basically a tree of elements. Example of elements used in HTML: body,
        head, title, p, h1, h2.</p>
      
   </dd>

    
        <dt><a name="gloss.endTag"></a>End-tag</dt>


         <dd>
        <p><a href="#gloss.tag">Tag</a>, which indicates that the
        following content is not under the element. Example:
        <code class="inline-code">&lt;/body&gt;</code>.</p>

        
      
    <p>See Also
       <a href="#gloss.startTag">Start-tag</a>
    </p>
   </dd>

    
        <dt><a name="gloss.environment"></a>Environment</dt>


         <dd>
        <p>An <code class="inline-code">Environment</code> object stores the runtime
        state of a single template <a href="#gloss.templateProcessingJob">template processing job</a>.
        That is, for each
        <code class="inline-code">Template.process(<em class="code-color">...</em>)</code>
        call, an <code class="inline-code">Environment</code> instance will be created, and
        then discarded when <code class="inline-code">process</code> returns. This object
        stores the set of temporary variables created by the template, the
        value of settings set by the template, the reference to the data-model
        root, etc. Everything that is needed to fulfill the template
        processing job.</p>
      
   </dd>

    
        <dt><a name="gloss.XML"></a>Extensible Markup Language</dt>


         <dd>
        <p>A subset (restricted version) of <a href="#gloss.SGML">SGML</a>. This is less powerful than SGML, but
        it easier to learn and much easier to process with programs. If you
        are an HTML author: XML documents are similar to HTML documents, but
        the XML standard doesn&#39;t specify the usable elements. XML is a much
        more general-purpose thing than HTML. For example you can use XML to
        describe Web pages (like HTML) or to describe non-visual information
        like a phone book database.</p>

        
      
    <p>See Also
       <a href="#gloss.SGML">Standard Generalized Markup Language</a>
    </p>
   </dd>

    
        <dt><a name="gloss.FTL"></a>FreeMarker Template Language</dt>


         <dd>
        <p>Simple programming language designed to write text file
        templates, especially HTML templates.</p>
      
   </dd>

    
        <dt><a name="autoid_273"></a>FTL</dt>


          <dd>See
       <a href="#gloss.FTL">FreeMarker Template Language</a>
    </dd>

    
        <dt><a name="gloss.FTLTag"></a>FTL tag</dt>


         <dd>
        <p><a href="#gloss.tag">Tag</a>-like text fragment used to
        invoke FreeMarker <a href="#gloss.directive">directives</a> in
        <a href="#gloss.FTL">FTL</a> <a href="#gloss.template">templates</a>. These are similar to HTML
        or XML tags at the first glance. The most prominent difference is that
        the tag name is started with <code class="inline-code">#</code> or
        <code class="inline-code">@</code>. Another important difference is that FTL tags do
        not use <a href="#gloss.attribute">attributes</a>, but a
        substantially different syntax to specify parameters. Examples of FTL
        tags: <code class="inline-code">&lt;#if newUser&gt;</code>,
        <code class="inline-code">&lt;/#if&gt;</code>, <code class="inline-code">&lt;@menuitem
        title=&quot;Projects&quot; link=&quot;projects.html&quot;/&gt;</code></p>
      
   </dd>

    
        <dt><a name="gloss.fullQualifiedName"></a>Full-qualified name(完全限定名)</dt>


         <dd>
        <p>... 对于结点来说(XML结点或其它FTL结点变量)：
		结点的完全限定名不仅仅指定结点名称
		(<code class="inline-code"><em class="code-color">node</em>?node_name</code>)，
		而且指定结点的命名空间
		(<code class="inline-code"><em class="code-color">node</em>?node_namespace</code>)，
		这种方式明确地指出结点的确定类型。完全限定名的格式是
        <code class="inline-code"><em class="code-color">nodeName</em></code> 或
        <code class="inline-code"><em class="code-color">prefix</em>:<em class="code-color">nodeName</em></code>。
		前缀是识别结点命名空间(结点的命名空间通常是使用很长的URI来指定的)的速记形式。
		在FTL中，前缀使用<a href="ref_directive_ftl.html#ref.directive.ftl"><code>ftl</code>
        指令</a> 的 <code class="inline-code">ns_prefixes</code> 参数和结点的命名空间相关联。
		在XML文件中，前缀使用 <code class="inline-code">xmlns:<em class="code-color">prefix</em></code>
		属性和结点的命名空间相关联。如果默认的命名空间被定义了，
		缺少前缀说明结点使用默认的命名空间；否则就说明结点不属于任何结点命名空间。
		FTL中定义的默认结点命名空间通过使用 <code class="inline-code">ftl</code> 指令 
		的 <code class="inline-code">ns_prefixes</code> 参数来注册保留前缀 <code class="inline-code">D</code>。
		在XML文件中，使用属性 <code class="inline-code">xmlns</code> 来定义。</p>

        <p>... 对于Java类来说：Java类的完全限定名包含类名和所属包的名字。
		这种方式明确地指出了类，而不管其内容。类的完全限定名示例：
        <code class="inline-code">java.util.Map</code> (和 <code class="inline-code">Map</code>相对)。</p>
      
   </dd>

    
        <dt><a name="gloss.hashVariable"></a>Hash</dt>


         <dd>
        <p>A variable that acts as a container that stores sub variables
        that can be retrieved via a string that is a lookup name.</p>

        
      
    <p>See Also
       <a href="#gloss.sequenceVariable">Sequence</a>
    </p>
   </dd>

    
        <dt><a name="gloss.lineBreak"></a>Line break</dt>


         <dd>
        <p>Line break is a special character (or a sequence of special
        characters) that causes a line breaking when you see the text as plain
        text (say, when you read the text with Windows notepad). Typically you
        type this character by hitting ENTER or RETURN key. The line break is
        represented with different characters on different platforms (to cause
        incompatibility and confusion...): ``line feed&#39;&#39; character on UNIX-es,
        ``carriage return&#39;&#39; character on Macintosh, ``carriage return&#39;&#39;+``line
        feed&#39;&#39; (two characters!) on Windows and DOS. Note that line breaks in
        HTML do not have a visual effect when viewed in a browser; you must
        use markup such as <code class="inline-code">&lt;BR&gt;</code> for that. This manual
        never means <code class="inline-code">&lt;BR&gt;</code> when it says
        ``line-break&#39;&#39;.</p>
      
   </dd>

    
        <dt><a name="gloss.macroDefinitionBody"></a>Macro definition body</dt>


         <dd>
        <p>The template fragment between the <code class="inline-code">&lt;#macro
        <em class="code-color">...</em>&gt;</code> and
        <code class="inline-code">&lt;/#macro&gt;</code>. This template fragment will be
        executed when you call the macro (for example as
        <code class="inline-code">&lt;@myMacro/&gt;</code>).</p>
      
   </dd>

    
        <dt><a name="gloss.methodVariable"></a>Method</dt>


         <dd>
        <p>A variable that calculates something based on parameters you
        give, and returns the result.</p>
      
   </dd>

    
        <dt><a name="gloss.MVC"></a>MVC pattern</dt>


         <dd>
        <p>MVC stands for Model View Controller. It&#39;s a design pattern
        started his life in the 70&#39;s as a framework developer by Trygve
        Reenskaug for Smalltalk, and was used primary for for UI-s (user
        interfaces). MVC considers three roles:</p>

        <ul>
          <li>
            Model: Model represents application (domain) specific
            information in a non-visual way. For example, an array of product
            objects in the memory of your computer is the part of the
            model.
          </li>

          <li>
            View: View displays the model and provides UI. For example,
            it&#39;s the task of the view component to render the array of product
            objects to a HTML page.
          </li>

          <li>
            Controller: The controller handles user input, modifies the
            model, and ensures that the view is updated when needed. For
            example it is the task of controller to take the incoming HTTP
            requests, parse the received parameters (forms), dispatch the
            requests to the proper business logic object, and chose the right
            template for the HTTP response.
          </li>
        </ul>

        <p>The most important thing for us when applying MVC for Web
        applications is the separation of View from the other two roles. This
        allows the separation of designers (HTML authors) from programmers.
        Designers deal with the visual aspects, programmers deal with the
        application logic and other technical issues; everybody works on what
        he is good at. Designers and programmers are less dependent on each
        other. Designers can change the appearance without programmers having
        to change or recompile the program.</p>

        <p>For more information I recommend reading <a href="http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/web-tier/web-tier5.html">chapter
        4.4</a> of Designing Enterprise Applications with the J2EE Platform
        blueprint.</p>
      
   </dd>

    
        <dt><a name="gloss.outputEncoding"></a>Output encoding</dt>


         <dd>
        <p>Means output <a href="#gloss.charset">charset</a>. In
        the Java world the term ``encoding&#39;&#39; is commonly (mis)used as a
        synonym to ``charset&#39;&#39;.</p>
      
   </dd>

    
        <dt><a name="gloss.predefinedDirective"></a>Predefined directive</dt>


         <dd>
        <p>Directive what is defined by FreeMarker, thus always available.
        Example of predefined directives: <code class="inline-code">if</code>,
        <code class="inline-code">list</code>, <code class="inline-code">include</code></p>

        
      
    <p>See Also
       <a href="#gloss.userDefinedDirective">User-defined directive</a>
    </p>
   </dd>

    
        <dt><a name="gloss.regularExpression"></a>Regular expression</dt>


         <dd>
        <p>A regular expression is a string that specifies a set of strings
        that matches it. For example, the regular expression
        <code class="inline-code">&quot;fo*&quot;</code> matches <code class="inline-code">&quot;f&quot;</code>,
        <code class="inline-code">&quot;fo&quot;</code>, <code class="inline-code">&quot;foo&quot;</code>, etc. Regular
        expressions are used in several languages and other tools. In
        FreeMarker, the usage of them is a ``power user&#39;&#39; option. So if you
        have never used them before, there is no need to worry about not being
        familiar with them. But if you are interested in regular expressions,
        you can find several Web pages and books about them. FreeMarker uses
        the variation of regular expressions described at: <a href="http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html">http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html</a></p>
      
   </dd>

    
        <dt><a name="gloss.scalarVariable"></a>Scalar</dt>


         <dd>
        <p>A scalar variable stores a single value. A scalar is either a
        string or a number or a date/time or a <a href="#gloss.boolean">boolean</a>.</p>
      
   </dd>

    
        <dt><a name="gloss.sequenceVariable"></a>Sequence</dt>


         <dd>
        <p>A sequence is a variable that contains a sequence of sub
        variables. The sequence&#39;s sub variables are accessible via numerical
        index, where the index of the very first object is 0, the index of the
        second objects is 1, the index of the third object is 2, etc.</p>

        
      
    <p>See Also
       <a href="#gloss.hashVariable">Hash</a>
    </p>
   </dd>

    
        <dt><a name="autoid_274"></a>SGML</dt>


          <dd>See
       <a href="#gloss.SGML">Standard Generalized Markup Language</a>
    </dd>

    
        <dt><a name="gloss.SGML"></a>Standard Generalized Markup Language</dt>


         <dd>
        <p>This is an international standard (ISO 8879) that specifies the
        rules for the creation of platform-independent markup languages. HTML
        is a markup language created with SGML. <a href="#gloss.XML">XML</a> is a subset (restricted version) of
        SGML.</p>

        
      
    <p>See Also
       <a href="#gloss.XML">Extensible Markup Language</a>
    </p>
   </dd>

    
        <dt><a name="gloss.startTag"></a>Start-tag</dt>


         <dd>
        <p><a href="#gloss.tag">Tag</a>, which indicates that the
        following content is under the element, up to the <a href="#gloss.endTag">end-tag</a>. The start-tag may also
        specifies <a href="#gloss.attribute">attributes</a> for the
        element. An example of a start-tag: <code class="inline-code">&lt;body
        bgcolor=black&gt;</code></p>
      
   </dd>

    
        <dt><a name="gloss.string"></a>String</dt>


         <dd>
        <p>A sequence of <a href="#gloss.character">characters</a>
        such as ``m&#39;&#39;, ``o&#39;&#39;, ``u&#39;&#39;, ``s&#39;&#39;, ``e&#39;&#39;.</p>
      
   </dd>

    
        <dt><a name="gloss.tag"></a>Tag</dt>


         <dd>
        <p>Text fragment indicating the usage of an element in SGML.
        Examples of tags: <code class="inline-code">&lt;body bgcolor=black&gt;</code>,
        <code class="inline-code">&lt;/body&gt;</code></p>

        

        
      
    <p>See Also
       <a href="#gloss.startTag">Start-tag</a>,
       <a href="#gloss.endTag">End-tag</a>
    </p>
   </dd>

    
        <dt><a name="gloss.template"></a>Template</dt>


         <dd>
        <p>A template is a text file with some special character sequences
        embedded into it. A template processor (e.g. FreeMarker) will
        interpret special character sequences and it outputs a more or less
        different text from the original text file, where the differences are
        often based on a <a href="#gloss.dataModel">data-model</a>.
        Thus, the original text acts as a template of the possible
        outputs.</p>
      
   </dd>

    
        <dt><a name="gloss.templateEncoding"></a>Template encoding</dt>


         <dd>
        <p>Means template <a href="#gloss.charset">charset</a>. In
        the Java world the term ``encoding&#39;&#39; is commonly (mis)used as a
        synonym to ``charset&#39;&#39;.</p>
      
   </dd>

    
        <dt><a name="gloss.templateProcessingJob"></a>Template processing job</dt>


         <dd>
        <p>A template processing job is the act when FreeMarker merges a
        template with a data-model to produce the output for a visitor. Note
        that this may includes the execution of multiple template files
        because the template file used for the Web page may invokes other
        templates with <code class="inline-code">include</code> and
        <code class="inline-code">import</code> directives. Each template-processing job is
        a separated cosmos that exists only for the short period of time while
        the given page is being rendered for the visitor, and then it vanishes
        with all the variables created in the templates (for example,
        variables created with <code class="inline-code">assign</code>,
        <code class="inline-code">macro</code> or <code class="inline-code">global</code>
        directives).</p>
      
   </dd>

    
        <dt><a name="gloss.threadSafe"></a>Thread-safe</dt>


         <dd>
        <p>An object is thread-safe if it is safe to call its methods from
        multiple threads, even in parallel (i.e. multiple threads execute the
        methods of the object at the same time). Non-thread-safe objects may
        behave unpredictably in this situation, and generate wrong results,
        corrupt internal data structures, etc. Thread-safety is typically
        achieved in two ways with Java: with the usage
        <code class="inline-code">synchronized</code> statement (or
        <code class="inline-code">synchronized</code> methods), and with the immutability of
        encapsulated data (i.e. you can&#39;t modify the field after you have
        created the object).</p>
      
   </dd>

    
        <dt><a name="gloss.transformVariable"></a>Transform</dt>


         <dd>
        <p>This term refers to user-defined directives that are implemetned
        with the now obsolete <code class="inline-code">TemplateTransformModel</code> Java
        interface. The feature was originally made for implementing output
        filters, hence the name.</p>
      
   </dd>

    
        <dt><a name="gloss.UCS"></a>UCS</dt>


         <dd>
        <p>This is international standard (ISO-10646) that defines a huge
        set of <a href="#gloss.character">characters</a> and assigns a
        unique number for each character (``!&#39;&#39; is 33, ..., ``A&#39;&#39; is 61, ``B&#39;&#39;
        is 62, ..., Arabic letter hamza is 1569... etc.). This character set
        (not charset) contains almost all characters used today (Latin
        alphabet, Cyrillic alphabet, Chinese letters, etc.). The idea behind
        UCS is that we can specify any character with a unique number, not
        mater what the platform or the language is.</p>

        
      
    <p>See Also
       <a href="#gloss.unicode">Unicode</a>
    </p>
   </dd>

    
        <dt><a name="gloss.unicode"></a>Unicode</dt>


         <dd>
        <p>De-facto standard developed by Unicode organization. It deals
        with the classification of the characters in <a href="#gloss.UCS">UCS</a> (which is letter, which is digit, which
        is uppercase, which is lowercase, etc.), and with other problems of
        processing text made from the characters of UCS (e.g.
        normalization).</p>
      
   </dd>

    
        <dt><a name="gloss.userDefinedDirective"></a>User-defined directive</dt>


         <dd>
        <p>Directive that is not defined by the FreeMarker core, but by the
        user. These are typically application domain specific directives, like
        pull-down menu generation directives, HTML form handling
        directives.</p>

        
      
    <p>See Also
       <a href="#gloss.predefinedDirective">Predefined directive</a>
    </p>
   </dd>

    
        <dt><a name="gloss.whiteSpace"></a>White-space(空白)</dt>


         <dd>
        <p>完全透明的字符，但是对文本的视觉呈现会有作用。
		空白字符的示例:空格，制表符(水平和垂直)，换行符(CR和LF)，换页。</p>

        
      
    <p>See Also
       <a href="#gloss.lineBreak">Line break</a>
    </p>
   </dd>

    
        <dt><a name="autoid_275"></a>XML</dt>


          <dd>See
       <a href="#gloss.XML">Extensible Markup Language</a>
    </dd>

      </dl>
<div class="bottom-pagers-wrapper"><div class="pagers bottom"><a class="paging-arrow previous" href="app_eccn.html"><span>Previous</span></a><a class="paging-arrow next" href="alphaidx.html"><span>Next</span></a></div></div></div></div>      </div>
    </div>
<div class="site-footer"><div class="site-width"><div class="footer-top"><div class="col-left sitemap"><div class="column"><h3 class="column-header">Overview</h3><ul><li><a href="http://freemarker.org/index.html">What is FreeMarker?</a></li><li><a href="http://freemarker.org/freemarkerdownload.html">Download</a></li><li><a href="app_versions.html">Version history</a></li><li><a href="http://freemarker.org/history.html">About us</a></li><li><a itemprop="license" href="app_license.html">License</a></li></ul></div><div class="column"><h3 class="column-header">Handy stuff</h3><ul><li><a href="http://freemarker-online.kenshoo.com/">Try template online</a></li><li><a href="dgui_template_exp.html#exp_cheatsheet">Expressions cheatsheet</a></li><li><a href="ref_directive_alphaidx.html">#directives</a></li><li><a href="ref_builtins_alphaidx.html">?built_ins</a></li><li><a href="ref_specvar.html">.special_vars</a></li></ul></div><div class="column"><h3 class="column-header">Community</h3><ul><li><a href="https://github.com/nanlei/freemarker/tree/manual-zh-2.3-gae/src/manual">Chinese Manual on Github</a></li><li><a href="https://github.com/freemarker/freemarker">FreeMarker on Github</a></li><li><a href="https://twitter.com/freemarker">Follow us on Twitter</a></li><li><a href="https://sourceforge.net/p/freemarker/bugs/new/">Report a bug</a></li><li><a href="http://stackoverflow.com/questions/ask?tags=freemarker">Ask a question</a></li><li><a href="http://freemarker.org/mailing-lists.html">Mailing lists</a></li></ul></div></div><div class="col-right"><ul class="social-icons"><li><a class="github" href="https://github.com/freemarker/freemarker">Github</a></li><li><a class="twitter" href="https://twitter.com/freemarker">Twitter</a></li><li><a class="stack-overflow" href="http://stackoverflow.com/questions/ask?tags=freemarker">Stack Overflow</a></li></ul><a class="xxe" href="http://www.xmlmind.com/xmleditor/" rel="nofollow" title="Edited with XMLMind XML Editor"><span>Edited with XMLMind XML Editor</span></a></div></div><div class="footer-bottom"><p><span class="generated-for-product">Generated for: Freemarker 2.3.23</span><span class="last-updated"> Last generated:
<time itemprop="dateModified" datetime="2015-09-18T14:38:51Z" title="Friday, September 18, 2015 2:38:51 PM GMT">2015-09-18 14:38:51 GMT</time></span></p> <p class="copyright">
© <span itemprop="copyrightYear">1999</span>–2015
<a itemtype="http://schema.org/Organization" itemprop="copyrightHolder" href="http://freemarker.org">The FreeMarker Project</a>. All rights reserved. </p>
</div></div></div></body>
</html>
